This invention relates generally to digital video recorders and, more particularly, to cache management and disk utilization for digital video recorders having multiple inputs and outputs.
An array of disk drives may be assembled to provide sufficient bandwidth to record or play digitized video signals, allowing random access to video data (tape recorders allow only sequential access). However, the data transfer rate of standard disk drives is not constant in that the disk read/write heads must often move from one track to the next and during these periods of movement, no transfer of data to or from the disk may take place. Such limitations are easily overlooked in computer applications since the computer may wait during the periods when no access is available. However, such wait periods are not appropriate in video applications given the continuous stream of data associated with a video signal. While the disks cannot support a continuous transfer data rate required for video, disk arrays are typically able to transfer data in bursts (groups of data) at rates slightly higher than the required continuous rate.
Redundant data storage may be provided to insure accurate data reproduction in case of disk drive failure. However, such redundancy can greatly increase the cost of the system when expensive disk drives are employed. Once a determination of drive failure is made, the redundant data may be retrieved, but a redundant system typically will wait a relatively long time period before determining that a drive has failed. Such waits may not be appropriate during playback of continuous data.
Another problem attendant with an array of disks is that data retrieval speed is dictated by the slowest disk in the array.
Cache management/disk utilization for a digital video recorder according to the present invention employs a cache in conjunction with an array of inexpensive disk drives for recording and playing video signals. The cache is such that data coming in or going out (e.g., digital video) is buffered in the cache through a cache management algorithm, thereby compensating for the periods when the disks may be unable to transfer data. Data is maintained in video and audio blocks, enabling use and modification of either or both of video data and audio data. In playback mode, e.g., the cache management includes retrieving playback data from the disks in advance of their use, and storing this information in the cache, and making data available for output.